--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit b6c5516601b24840562a04986db3f4500d9016e5
Parents : 77384b3
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-07T11:32:34-05:00
chore(docs): standardize table formatting across documentation files for improved readability
Changes
7 files changed, 118 insertions(+), 118 deletions(-)
Diff
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/getting-started.md b/meshchatx/src/frontend/public/meshchatx-docs/en/getting-started.md
index 5c012b56..441c8f07 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/getting-started.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/getting-started.md
@@ -46,22 +46,22 @@ The same backend code powers Docker images, Python wheels, Linux packages, Elect
## Main areas of the UI
-| Area | Route | Purpose |
-| ---- | ----- | ------- |
-| Messages | `/messages` | LXMF direct messaging, folders, attachments |
-| Audio calls | `/call` | LXST voice calls and voicemail |
-| Contacts | `/contacts` | Telephone contacts and call-related entries |
-| Relay chat | `/relay-chat` | RRC hubs and rooms (when enabled in settings) |
-| Nomad Network | `/nomadnetwork` | Browse remote NomadNet pages and files |
-| Map | `/map` | OpenLayers map, offline tiles, telemetry |
-| Archives | `/archives` | Versioned snapshots of Nomad pages |
-| Tools | `/tools` | Ping, path tools, RNCP, bots, documentation, and more |
-| Interfaces | `/interfaces` | Add and manage Reticulum interfaces |
-| Network visualiser | `/network-visualiser` | Graph view of mesh topology |
-| Blocked | `/blocked` | Blocked destinations |
-| Settings | `/settings` | Theme, language, LXMF, telephone, security |
-| Identities | `/identities` | Create, import, or switch identities |
-| Documentation | `/documentation` | MeshChatX guides and the Reticulum manual |
+| Area | Route | Purpose |
+| ------------------ | --------------------- | ----------------------------------------------------- |
+| Messages | `/messages` | LXMF direct messaging, folders, attachments |
+| Audio calls | `/call` | LXST voice calls and voicemail |
+| Contacts | `/contacts` | Telephone contacts and call-related entries |
+| Relay chat | `/relay-chat` | RRC hubs and rooms (when enabled in settings) |
+| Nomad Network | `/nomadnetwork` | Browse remote NomadNet pages and files |
+| Map | `/map` | OpenLayers map, offline tiles, telemetry |
+| Archives | `/archives` | Versioned snapshots of Nomad pages |
+| Tools | `/tools` | Ping, path tools, RNCP, bots, documentation, and more |
+| Interfaces | `/interfaces` | Add and manage Reticulum interfaces |
+| Network visualiser | `/network-visualiser` | Graph view of mesh topology |
+| Blocked | `/blocked` | Blocked destinations |
+| Settings | `/settings` | Theme, language, LXMF, telephone, security |
+| Identities | `/identities` | Create, import, or switch identities |
+| Documentation | `/documentation` | MeshChatX guides and the Reticulum manual |
Relay chat appears only when `rrc_enabled` is turned on in settings.
@@ -77,12 +77,12 @@ Use the search bar to query both sets at once. MeshChatX guide text is currently
## Storage locations
-| Data | Typical path |
-| ---- | ------------ |
-| MeshChatX app data | `~/.reticulum-meshchatx/` on Linux and macOS |
-| Reticulum config | `~/.reticulum/` |
+| Data | Typical path |
+| --------------------- | -------------------------------------------------- |
+| MeshChatX app data | `~/.reticulum-meshchatx/` on Linux and macOS |
+| Reticulum config | `~/.reticulum/` |
| Per-identity database | `<storage>/identities/<identity_hash>/database.db` |
-| Docker volume | `meshchatx-config` mounted at `/config` |
+| Docker volume | `meshchatx-config` mounted at `/config` |
Legacy upstream data may still exist under `~/.reticulum-meshchat/`. Migration tooling can move you to the MeshChatX layout.
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/identity-and-security.md b/meshchatx/src/frontend/public/meshchatx-docs/en/identity-and-security.md
index 07068a1b..b95e3fb1 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/identity-and-security.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/identity-and-security.md
@@ -18,13 +18,13 @@ Shared resources include the Reticulum process and interface configuration in `~
MeshChatX tracks announces for aspects such as:
-| Aspect | Meaning |
-| ------ | ------- |
-| `lxmf.delivery` | Peer accepts LXMF messages |
-| `lxst.telephony` | Peer accepts LXST calls |
-| `lxmf.propagation` | Propagation node |
-| `nomadnetwork.node` | NomadNet page server |
-| `rrc.hub` | Relay chat hub (when RRC enabled) |
+| Aspect | Meaning |
+| ------------------- | --------------------------------- |
+| `lxmf.delivery` | Peer accepts LXMF messages |
+| `lxst.telephony` | Peer accepts LXST calls |
+| `lxmf.propagation` | Propagation node |
+| `nomadnetwork.node` | NomadNet page server |
+| `rrc.hub` | Relay chat hub (when RRC enabled) |
Announce records store signal metadata and parsed app data for display names and icons.
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/installation.md b/meshchatx/src/frontend/public/meshchatx-docs/en/installation.md
index 6b7938d9..2d55425a 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/installation.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/installation.md
@@ -4,27 +4,27 @@ MeshChatX can be installed in several ways. All release artifacts that ship the
## Requirements
-| Component | Version |
-| --------- | ------- |
-| Python | 3.11 or newer (`pyproject.toml`) |
-| Node.js | 24 or newer (development and frontend builds only) |
-| pnpm | 11.1.2 (development) |
-| UV | Used by Taskfile and CI |
+| Component | Version |
+| --------- | -------------------------------------------------- |
+| Python | 3.11 or newer (`pyproject.toml`) |
+| Node.js | 24 or newer (development and frontend builds only) |
+| pnpm | 11.1.2 (development) |
+| UV | Used by Taskfile and CI |
**Browsers for the web UI:** Safari 16.4+, Chrome 111+, Firefox 128+.
## Choose an install method
-| Method | Frontend included | Best for |
-| ------ | ----------------- | -------- |
-| Docker image | Yes | Fast server setup on Linux |
-| Python wheel | Yes | Headless install without building the UI |
-| Linux AppImage | Yes | Portable desktop on x64 or arm64 |
-| Debian `.deb` | Yes | Debian and Ubuntu systems |
-| RPM package | Yes | Fedora, RHEL, openSUSE style systems |
-| Electron desktop | Yes | Integrated desktop with bundled backend |
-| Android APK | Yes | Phones, tablets, Meta Quest sideload |
-| From source | Built locally | Development and custom builds |
+| Method | Frontend included | Best for |
+| ---------------- | ----------------- | ---------------------------------------- |
+| Docker image | Yes | Fast server setup on Linux |
+| Python wheel | Yes | Headless install without building the UI |
+| Linux AppImage | Yes | Portable desktop on x64 or arm64 |
+| Debian `.deb` | Yes | Debian and Ubuntu systems |
+| RPM package | Yes | Fedora, RHEL, openSUSE style systems |
+| Electron desktop | Yes | Integrated desktop with bundled backend |
+| Android APK | Yes | Phones, tablets, Meta Quest sideload |
+| From source | Built locally | Development and custom builds |
Release images are published to Docker Hub (`quad4io/meshchatx`) and GHCR (`ghcr.io/quad4-software/meshchatx`).
@@ -105,22 +105,22 @@ Open the UI at the host and port you chose. HTTPS is enabled by default with a s
Common flags and environment variables:
-| Flag | Environment variable | Default | Description |
-| ---- | -------------------- | ------- | ----------- |
-| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Bind address |
-| `--port` | `MESHCHAT_PORT` | `8000` | HTTP or HTTPS port |
-| `--no-https` | `MESHCHAT_NO_HTTPS` | false | Serve plain HTTP |
-| `--ssl-cert` | `MESHCHAT_SSL_CERT` | auto | TLS certificate path |
-| `--ssl-key` | `MESHCHAT_SSL_KEY` | auto | TLS private key path |
-| `--headless` | `MESHCHAT_HEADLESS` | false | Do not open a browser |
-| `--auth` | `MESHCHAT_AUTH` | false | Require HTTP basic auth for the UI |
-| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Application data directory |
-| `--reticulum-config-dir` | (see `--help`) | `~/.reticulum` | Reticulum configuration |
-| `--identity-file` | `MESHCHAT_IDENTITY_FILE` | none | Load identity from file |
-| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | none | Reticulum log level |
-| `--auto-recover` | `MESHCHAT_AUTO_RECOVER` | false | Attempt SQLite recovery on start |
-| `--emergency` | | false | Start without database |
-| `--disable-plugins` | | false | Disable the plugin system |
+| Flag | Environment variable | Default | Description |
+| ------------------------ | ------------------------ | -------------- | ---------------------------------- |
+| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Bind address |
+| `--port` | `MESHCHAT_PORT` | `8000` | HTTP or HTTPS port |
+| `--no-https` | `MESHCHAT_NO_HTTPS` | false | Serve plain HTTP |
+| `--ssl-cert` | `MESHCHAT_SSL_CERT` | auto | TLS certificate path |
+| `--ssl-key` | `MESHCHAT_SSL_KEY` | auto | TLS private key path |
+| `--headless` | `MESHCHAT_HEADLESS` | false | Do not open a browser |
+| `--auth` | `MESHCHAT_AUTH` | false | Require HTTP basic auth for the UI |
+| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Application data directory |
+| `--reticulum-config-dir` | (see `--help`) | `~/.reticulum` | Reticulum configuration |
+| `--identity-file` | `MESHCHAT_IDENTITY_FILE` | none | Load identity from file |
+| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | none | Reticulum log level |
+| `--auto-recover` | `MESHCHAT_AUTO_RECOVER` | false | Attempt SQLite recovery on start |
+| `--emergency` | | false | Start without database |
+| `--disable-plugins` | | false | Disable the plugin system |
CLI flags override environment variables when both are set.
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/interfaces.md b/meshchatx/src/frontend/public/meshchatx-docs/en/interfaces.md
index 81a47461..edbc435f 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/interfaces.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/interfaces.md
@@ -12,19 +12,19 @@ MeshChatX reads and writes interface configuration in your Reticulum config dire
The **Add interface** flow includes:
-| Type | Typical use |
-| ---- | ----------- |
-| TCPClientInterface | Connect outbound to a known TCP peer |
-| TCPServerInterface | Accept inbound TCP connections |
-| BackboneInterface | High-throughput backbone link |
-| UDPInterface | UDP transport with discovery helpers |
-| RNodeInterface | LoRa via RNode (serial, BLE, or IP transport) |
-| RNodeIPInterface | RNode reached over IP |
-| SerialInterface | Direct serial devices |
-| KISSInterface | KISS TNC devices |
-| I2PInterface | I2P-based Reticulum transport |
-| AutoInterface | Automatic discovery on local networks |
-| Custom external types | Advanced setups |
+| Type | Typical use |
+| --------------------- | --------------------------------------------- |
+| TCPClientInterface | Connect outbound to a known TCP peer |
+| TCPServerInterface | Accept inbound TCP connections |
+| BackboneInterface | High-throughput backbone link |
+| UDPInterface | UDP transport with discovery helpers |
+| RNodeInterface | LoRa via RNode (serial, BLE, or IP transport) |
+| RNodeIPInterface | RNode reached over IP |
+| SerialInterface | Direct serial devices |
+| KISSInterface | KISS TNC devices |
+| I2PInterface | I2P-based Reticulum transport |
+| AutoInterface | Automatic discovery on local networks |
+| Custom external types | Advanced setups |
Community-curated suggestions come from `community_interfaces.json`, sourced from [directory.rns.recipes](https://directory.rns.recipes).
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/nomad-network.md b/meshchatx/src/frontend/public/meshchatx-docs/en/nomad-network.md
index 68cb88d8..0c0cd821 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/nomad-network.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/nomad-network.md
@@ -8,12 +8,12 @@ Open **Nomad Network** and enter a node destination hash. MeshChatX fetches the
Supported page types:
-| Extension | Format |
-| --------- | ------ |
-| `.mu` | Micron markup (NomadNet default) |
-| `.md` | Markdown with GFM-oriented rendering |
-| `.txt` | Plain text with preserved whitespace |
-| `.html` | Static HTML with sanitised CSS |
+| Extension | Format |
+| --------- | ------------------------------------ |
+| `.mu` | Micron markup (NomadNet default) |
+| `.md` | Markdown with GFM-oriented rendering |
+| `.txt` | Plain text with preserved whitespace |
+| `.html` | Static HTML with sanitised CSS |
Follow links inside pages to browse further paths on the same node. Download files offered at `/file/*` paths.
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/nomadmesh-pages.md b/meshchatx/src/frontend/public/meshchatx-docs/en/nomadmesh-pages.md
index c50f76cc..325726d9 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/nomadmesh-pages.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/nomadmesh-pages.md
@@ -4,12 +4,12 @@ MeshChatX serves pages from a **Mesh Server** page node and displays them in the
## Supported filenames
-| Extension | Role |
-| --------- | ---- |
-| `.mu` | Micron markup (NomadNet default) |
-| `.md` | Markdown with GitHub-flavored features via the renderer |
-| `.txt` | Plain text with escaped HTML and preserved whitespace |
-| `.html` | Static HTML with CSS only (see security below) |
+| Extension | Role |
+| --------- | ------------------------------------------------------- |
+| `.mu` | Micron markup (NomadNet default) |
+| `.md` | Markdown with GitHub-flavored features via the renderer |
+| `.txt` | Plain text with escaped HTML and preserved whitespace |
+| `.html` | Static HTML with CSS only (see security below) |
If you add a page without a recognised extension, the server stores it as `.mu`. Filenames with other extensions (for example `.exe`) are rejected when saving through the API.
diff --git a/meshchatx/src/frontend/public/meshchatx-docs/en/tools.md b/meshchatx/src/frontend/public/meshchatx-docs/en/tools.md
index ac9ec3ac..bc98c672 100644
--- a/meshchatx/src/frontend/public/meshchatx-docs/en/tools.md
+++ b/meshchatx/src/frontend/public/meshchatx-docs/en/tools.md
@@ -4,67 +4,67 @@ The **Tools** page groups mesh diagnostics and helper apps. Each tool opens its
## Network diagnostics
-| Tool | Purpose |
-| ---- | ------- |
-| Ping | Measure round-trip time to a reachable destination |
-| RNProbe | Probe whether a destination answers |
-| RNPath | Inspect the path table |
-| RNPath-trace | Trace hops toward a destination |
-| RNStatus | Read node status information |
-| Network visualiser | Graph view of topology (also in main navigation) |
+| Tool | Purpose |
+| ------------------ | -------------------------------------------------- |
+| Ping | Measure round-trip time to a reachable destination |
+| RNProbe | Probe whether a destination answers |
+| RNPath | Inspect the path table |
+| RNPath-trace | Trace hops toward a destination |
+| RNStatus | Read node status information |
+| Network visualiser | Graph view of topology (also in main navigation) |
Use these when messages or pages fail despite interfaces showing as enabled.
## File transfer and shell
-| Tool | Purpose |
-| ---- | ------- |
-| RNCP | Send or fetch files over Reticulum |
+| Tool | Purpose |
+| ---- | ------------------------------------------ |
+| RNCP | Send or fetch files over Reticulum |
| RNSH | Remote shell sessions with streamed output |
RNCP progress events arrive on the WebSocket as `rncp.transfer.progress`.
## Messaging helpers
-| Tool | Purpose |
-| ---- | ------- |
-| Propagation nodes | Manage LXMF propagation nodes and sync |
-| Forwarder | Configure LXMF forwarding rules between aliases |
-| Sieve filters | Pattern-based inbound message filtering (beta) |
-| Message blocklist | Block known unwanted content (beta) |
-| Paper message | Create or ingest LXMF URIs and QR workflows |
-| Bots | Run subprocess LXMF bots from templates |
+| Tool | Purpose |
+| ----------------- | ----------------------------------------------- |
+| Propagation nodes | Manage LXMF propagation nodes and sync |
+| Forwarder | Configure LXMF forwarding rules between aliases |
+| Sieve filters | Pattern-based inbound message filtering (beta) |
+| Message blocklist | Block known unwanted content (beta) |
+| Paper message | Create or ingest LXMF URIs and QR workflows |
+| Bots | Run subprocess LXMF bots from templates |
Bot templates include echo, note, and reminder starters. They use the bundled `lxmfy` package.
## Content and publishing
-| Tool | Purpose |
-| ---- | ------- |
-| Mesh Server | Host NomadNet-compatible page nodes |
-| Micron editor | Edit `.mu` pages locally |
+| Tool | Purpose |
+| ------------- | ------------------------------------- |
+| Mesh Server | Host NomadNet-compatible page nodes |
+| Micron editor | Edit `.mu` pages locally |
| Documentation | MeshChatX guides and Reticulum manual |
## Configuration editors
-| Tool | Purpose |
-| ---- | ------- |
-| Reticulum config editor | Edit raw Reticulum configuration |
-| Repository server | Host Python wheels for offline installs |
+| Tool | Purpose |
+| ----------------------- | --------------------------------------- |
+| Reticulum config editor | Edit raw Reticulum configuration |
+| Repository server | Host Python wheels for offline installs |
## Hardware and translation
-| Tool | Purpose |
-| ---- | ------- |
-| RNode flasher | Flash or update RNode firmware |
-| Translator | Translate text via Argos Translate or LibreTranslate |
+| Tool | Purpose |
+| ------------- | ---------------------------------------------------- |
+| RNode flasher | Flash or update RNode firmware |
+| Translator | Translate text via Argos Translate or LibreTranslate |
Translator calls respect **privacy mode**. When privacy mode blocks outbound HTTP, external translation endpoints are not contacted.
## Debugging
-| Tool | Purpose |
-| ---- | ------- |
+| Tool | Purpose |
+| ---------- | ----------------------------- |
| Debug logs | View backend debug log stream |
## Coming soon
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────